﻿#pragma once
#include "zyDialogBase.h"

namespace BlackMoonUI {

	class zyFileDialog : public  zyDialogBase
	{
	public:
		zyFileDialog();
		~zyFileDialog();

		static LRESULT CALLBACK OFNHookProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam);
		bool 打开(HWND 参数_父窗口 = NULL);
		void 初始化(int 参数_选项, const std::wstring& 参数_标题 = L"", const std::wstring& 参数_文件名 = L"", const wchar_t* 参数_过滤器 = nullptr, 
			int 参数_过滤器索引 = 1, const std::wstring& 参数_初始目录 = L"", const std::wstring& 参数_默认扩展名 = L"");
		std::wstring 取文件名();
		bool 保存(HWND 参数_父窗口 = NULL);
		int 取过滤器索引();
		bool 置默认扩展名(const std::wstring& 参数_默认扩展名);
		//@备注 函数 整型 OnTypeChange(HWND hWnd,整型 过滤器索引)，备注：可在此方法中调用，文件对话框.置默认扩展名()
		void 事件_文件类型被改变(TRegEvent* 参数_子程序);
		//@备注 函数 整型 OnInitDone(HWND hWnd)，备注：当对话框的所有控件创建完成时，发送此事件
		void 事件_初始化完成(TRegEvent* 参数_子程序);
		//@备注 返回值：整型【0表示默认处理，1表示阻止】 函数 整型 OnFlieOk(HWND hWnd,整型 文件名【Unicode文本指针】)
		void 事件_确定按钮被单击(TRegEvent* 参数_子程序);

	};

}

